package chapter05

/**
 * 提供一个函数对集合类型进行处理
 */
object Demo07_CollectionOperation {
  def main(args: Array[String]): Unit = {
    val arr: Array[Int] = Array(1,2,3,6,7)

    //对数组进行处理，将操作抽象出来，处理完毕之后的结果返回一个新的数组
    def arrayOperation(array: Array[Int] , op: Int => Int): Array[Int] = {
      for (elem <- array) yield op(elem)
    }



    //定义一个加一操作
    def addOne(elem: Int): Int = {
      elem + 1
    }

    //调用函数
    val newArray: Array[Int] = arrayOperation(arr, addOne)
    println(newArray.mkString(","))

    //传入匿名函数，实现元素的翻倍
    val newArray2 = arrayOperation(arr , _ * 2)
    println(newArray2.mkString(","))
  }
}
